Matlab:从矩阵中获取元素 | 您所在的位置:网站首页 › matlab 取列 › Matlab:从矩阵中获取元素 |
我们知道,获取 Matlab 中矩阵M\in R^{m\times n}的元素,可以通过 M() ,即圆括号运算符来实现,圆括号里面的参数不同,可以获取不同规格的元素. M = [1,4,7;2,5,8;3,6,9] M = 1 4 7 2 5 8 3 6 9第一种也是最常见的是获取 M\in R^{m\times n} 中的 (ij)th 项,代码为 temp = M(i,j);(i,j) :圆括号里面有用逗号分开的两个标量 i,j , i=1,2,...,m;j=1,2,...,n . 第二种有一种做法是获取一行或这一列,这个也很简单,通过 Matlab 提供的便捷技巧,通过如下代码实现: temp_row = M(i,:); temp_low = M(:,j);(i,:) 圆括号里面有用逗号分开的两个参数,其中有一个用冒号代替了,这样表示取这一整列或一整行。这里用到了一些特殊的符号 :,具体含义参考任意一本 Matlab 入门书籍,或者自行百度。 第三种: 圆括号里面不再是逗号分开的两个参数,而是一个向量 index . index1 = [1,3,5,7,9]; M(index1) ans = 1 3 5 7 9 index2 = [3,9,5,1,7]; M(index2) ans = 3 9 5 1 7这样做需要两个前置条件: 首先需要简单的了解一下 Matlab 中矩阵元素的排列方式,简单来说,就是矩阵中的元素有两个下标索引,一个就是类似于数学中的矩阵概念,下标索引为 (i,j) ,另外一个就是把矩阵按列分块 M=[r_1,r_2,...,r_n] ,然后再把列向量首尾相连拼接形成一个长向量,这样矩阵中的元素就会有一个向量下标 i .形象的理解一下就是把矩阵的元素按照从左到右,从上到下的顺序,挨个数数,数到几这个元素的向量下标就是几。这个向量的元素的值要大于等于1,小于等于 m*n .这样可以提取出我们任意想要的不同位置的多个元素。注意如果这个向量如果按照从小到大排序。 下面举一个例子:从矩阵中随机选取5个元素 Omega = randperm(3*3); Omega = Omega(1:5); Omega = sort(Omega); v = M(Omega) v = 3 5 6 7 8 |
CopyRight 2018-2019 实验室设备网 版权所有 |